<?php
//Expat
/*//Initialize the XML parser
$parser=xml_parser_create();

//Function to use at the start of an element
function start($parser,$element_name,$element_attrs)
{
    switch($element_name)
    {
        case "NOTE":
            echo "-- Note --<br>";
            break;
        case "TO":
            echo "To: ";
            break;
        case "FROM":
            echo "From: ";
            break;
        case "HEADING":
            echo "Heading: ";
            break;
        case "BODY":
            echo "Message: ";
    }
}

//Function to use at the end of an element
function stop($parser,$element_name)
{
    echo "<br>";
}

//Function to use when finding character data
function char($parser,$data)
{
    echo $data;
}

//Specify element handler
xml_set_element_handler($parser,"start","stop");

//Specify data handler
xml_set_character_data_handler($parser,"char");

//Open XML file
$fp=fopen("test.xml","r");

//Read data
while ($data=fread($fp,4096))
{
    xml_parse($parser,$data,feof($fp)) or
    die (sprintf("XML Error: %s at line %d",
        xml_error_string(xml_get_error_code($parser)),
        xml_get_current_line_number($parser)));
}

//Free the XML parser
xml_parser_free($parser);*/


//Dom
/*$xmlDoc = new DOMDocument();
$xmlDoc->load("test.xml");

echo $xmlDoc->saveXML();*/
/*$xmlDoc = new DOMDocument();
$xmlDoc->load("test.xml");

$x = $xmlDoc->documentElement;
foreach ($x->childNodes AS $item)
{
    //print $item->nodeName . " = " . $item->nodeValue . "<br>";
    echo $item->nodeName.'<br/>';
}*/

//simple
$xml=simplexml_load_file("test.xml");
//print_r($xml);
/*echo $xml->to . "<br>";
echo $xml->from . "<br>";
echo $xml->heading . "<br>";
echo $xml->body;*/
echo $xml->getName() . "<br>";
foreach($xml->children() as $child)
{
    echo $child->getName() . ": " . $child . "<br>";
}